<?php

$n = 5;

function repeatIt($n, $rate) {
  $result=array();
  $val=false;
  $i=0;
  while($i<$n){
    $j=$rate;
    while($j>0) {
      $result[]=$val;
      $j--;
      $i++;
    }
    $val=!$val;
  }
  return($result);
}

$result=array();
for ($i=1; $i<=$n; $i++) {
  $result[$i]=repeatIt(pow(2,$n),pow(2,$i-1));
}

$out = array();

$ncomb=pow(2,$n);
for ($i=1; $i<$ncomb; $i++) {
  for ($j=1; $j<=$n; $j++) {
    if ($result[$j][$i]>0) $out[$i][]=$j*$result[$j][$i];
  }
}

sort($out);
foreach($out as $o) {
  foreach($o as $cell) {
    echo $cell." ";
  }
  echo "\n";
}

?>